#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include "distinguish.h"
#include "massage.h"
#include "attendance.h"
#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QUrl>
#include <QUrlQuery>
#include <QJsonDocument>
#include <QJsonObject>

namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    // 按钮槽函数（来自 HEAD 分支）
    void on_button_enter_clicked();
    void on_button_person_clicked();
    void on_button_work_clicked();

public slots:
    // 网络请求槽函数（来自 zhao 分支）
    void getAccessToken(const QString &apiKey, const QString &secretKey);
    void registerFace(const QString &accessToken, const QString &imagePath, const QString &userId, const QString &groupId, const QString &userInfo);
    void updateFace(const QString &accessToken, const QString &imagePath, const QString &userId, const QString &groupId, const QString &userInfo);
    void queryFace(const QString &accessToken, const QString &userId, const QString &groupId);
    void deleteFace(const QString &accessToken, const QString &userId, const QString &groupId);

private:
    Ui::Widget *ui;

    // 成员变量合并
    massage *mass;         // 来自 HEAD 分支
    attendance *att;       // 来自 HEAD 分支
    distinguish *dist;     // 来自 zhao 分支（注意是否需要与 dis 合并）
    QNetworkAccessManager *manager;  // 来自 zhao 分支

public:
    QString accessToken;
};

#endif // WIDGET_H
